package com.yc.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * 查看班级信息（老师查询自己带的班 以及该班班长和学委
 * @date : 2023-6-28
 */
@Mapper
public interface QuerymonitorMapper {

    /**
     * 查询该老师执教的班级
     * @param tid 老师id（工号
     * @return 班级名称
     */
    @Select("SELECT DISTINCT c.cname FROM systemuser a,student_info b,class_info c,`schedule` d WHERE a.username=#{tid} AND a.id=d.teacherId AND d.classId=c.id ")
    List<Map<String,Object>> Selectteachclass(@Param("tid") String tid);

    /**
     * 查询班长详细信息或学委详细信息
     * @param cname
     * @param role 为 1 是班长 为 2 是学委
     * @return 班委名 班委学号 班委电话   原显示班长和学委  改为只显示学委
     */
    @Select("SELECT b.sname,b.stuid,b.sphone FROM student_info b,class_info c WHERE c.cname=#{cname} AND c.id=b.cid AND b.spare=#{role}")
    List<Map<String,Object>> SelectBorXinfo(@Param("cname") String cname,@Param("role") int role);

    /**
     * 查询每个班级所有学生  用做设置班委  并按照中文拼音排序
     * @param cname 班名
     * @return 班委名 班委学号
     */
    @Select("SELECT b.sname text,b.stuid value,b.cid FROM student_info b,class_info c WHERE c.cname=#{cname} AND c.id=b.cid  ORDER BY CONVERT(text USING GBK) COLLATE GBK_CHINESE_CI ASC")
    List<Map<String,Object>> SelectStudentinfo(@Param("cname") String cname);

    /**
     * 给班级设置学委
     * @param cid 班级id
     * @param stuid 学号
     */
    @Update("update student_info set spare=2  where cid=#{cid} and stuid=#{stuid}")
    void setGoodStudentInfo(@Param("cid") String cid,@Param("stuid") String stuid);

    /**
     * 学委设置错误后重置
     * @param cid 班级id
     */
    @Update("update student_info set spare=0 where spare=2 and cid=#{cid}")
    void resetGoodStudent(@Param("cid") String cid);

}
